Dynamic prioritization of activities

ABSTRACT

A system comprises a first store of process instance data, a second store of data including predictions and statistics respectively corresponding to the process instance data, and a dynamic prioritization system configured to selectively access data in the first store and the second store and to estimate a cost of a process instance responsive to the accessing, wherein process instance node priorities are adjusted responsive to the estimate. A method comprises providing a first store of process instance data, providing a second store of data including predictions and statistics respectively corresponding to the process instance data, selectively accessing data in the first store and the second store, estimating a cost of a process instance responsive to the accessing and selectively adjusting process instance node priorities using a dynamic prioritization system responsive to the estimating.

FIELD OF THE INVENTION

[0001] The invention relates to workflow management and web servicecomposition. More particularly, the invention relates to automatedworkflow analysis and prioritization.

BACKGROUND OF THE INVENTION

[0002] Many business-related processes depend upon the execution ofpre-defined tasks. Computers and other automated systems are applied toautomating a number of these pre-defined tasks, handling such aspectsas: identification and allocation of resources; time management;inventory control; accounting procedures; etc. Systems dedicated to thedefinition, execution, management, and monitoring of such businessprocesses are generally referred to as Process Management Systems(PMSs). When the process is used to compose (i.e., orchestrate theexecution of) web services, then PMSs are also called “ServiceComposition Engines”. The term PMS as used in this document refers toboth systems executing business processes and to systems composing webservices.

[0003] A process management system makes at least two determinations foreach step in a business process: the services or specific proceduresrequired; and the resources needed to do perform them. Under thiscontext, resources include, for example: personnel; office machinery;forms and other printed matter; computer hardware; softwareapplications; third-party services (i.e., shipping contractor; technicalconsultant; etc.); consumables; etc.

[0004] Generally, a resource will be assigned to several pendingactivities, representing numerous different processes. For example, anadministrative employee may have to process several travel reimbursementrequests, to book hotels for visitors, arrange meetings, and so on.Thus, any given resource is likely to have involvement in severaldifferent tasks concurrently. Within current Process Management Systems,personnel can choose the order in which they process activities assignedto them, or, in the case of an automated resource, will perform theassigned tasks on a First Come, First Served (FCFS) basis.

[0005] The inherently arbitrary order in which personnel may choose toperform (or avoid) assigned tasks often leads to poorly prioritizedexecution of that task, sometimes to the extent that deadlines aremissed, or unnecessary time and cost burdens are assumed in meeting thedeadline. Such burdensome, “hurry-up” situations can also lead tosacrificing service quality or missing other deadlines, having acompounding effect on other assigned tasks. The first come, first servednature of automated systems can lead to similar inefficiencies andmissed deadlines, for example, if several relatively low-priority tasksare completed before a longer-duration, relatively high-priority task,simply because of their order within the work queue.

[0006] Attention is directed to commonly assigned U.S. patentapplication Ser. No. 09/860,230, filed May 18, 2001, titled “Method ofIdentifying and Analyzing Business Processes from Workflow Audit Logs”,listing as inventors Fabio Casati, Ming-Chien Shan, Li-Jie Jin, UmeshwarDayal, Daniela Grigori, and Angela Bonifati, Attorney Docket Number10010068-1, which describes workflow management systems and workflowaudit logs, and which is incorporated herein by reference. Attention isalso directed to U.S. patent application Ser. No. 09/464,311, filed Dec.15, 1999, titled “Custom Profiling Apparatus for Conducting CustomerBehavior Pattern Analysis, and Method for Comparing Customer BehaviorPatterns”, naming Qiming Chen, Umeshwar Dayal, and Meichun Hsu asinventors, and which is incorporated herein by reference.

SUMMARY OF THE INVENTION

[0007] The invention relates to a system and method for automaticallyassigning and dynamically modifying priorities of the work items (i.e.,nodes) in order to optimize process execution performance.

[0008] One aspect of the invention provides a system for estimating acost of a process, the system comprising a first store of processinstance data, a second store of data including predictions andstatistics respectively corresponding to the process instance data, anda dynamic prioritization system configured to selectively access data inthe first store and the second store and to estimate a cost of a processinstance responsive to the accessing.

[0009] Another aspect of the invention provides a method of estimating acost of a process, the method comprising a first store of processinstance data, providing a second store of data including predictionsand statistics respectively corresponding to the process instance data,selectively accessing data in the first store and the second store, andestimating a cost of a process instance responsive to the accessingusing a dynamic prioritization system.

[0010] Another aspect of the invention provides a system comprisingmeans for selectively accessing data related to a process, means foraccessing predictions and statistics data related to the process, meansfor computing a cost of a step within the process responsive to theaccessing, and means for selectively prioritizing the step responsive tothe computing.

DESCRIPTION OF THE DRAWINGS

[0011]FIG. 1 provides a block diagrammatic illustration of a businesssystem according to one embodiment of the invention.

[0012]FIG. 2 provides a block diagrammatic illustration of a businesssystem according to another embodiment of the invention.

[0013]FIG. 3 provides a block diagrammatic illustration of a businesssystem according to still another embodiment of the invention.

[0014]FIG. 4 provides a block diagrammatic illustration of a businesssystem according to yet another embodiment of the invention.

[0015]FIG. 5 provides a block diagrammatic illustration of a businesssystem according to another embodiment of the invention.

[0016]FIG. 6 is a flowchart of the steps executed by some embodiments ofthe invention.

[0017]FIG. 7 is a flowchart of the steps executed by another embodimentof the invention.

[0018]FIG. 8 is a flowchart of the steps executed by yet anotherembodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0019]FIG. 1 provides a block diagram of a system 110 according to oneembodiment of the invention. The system 110 includes a store of processexecution data (i.e., process instance data) 112. In one embodiment, thestore 112 is defined by a memory such as a floppy disk, a hard drive, anoptical disk, a digital tape, a ROM, a RAM, or any other type of storagedevice used by computers or digital equipment. The process data isgenerated by a process engine 124 configured to gather and store processinstance data as process execution progresses. The process instance datawithin the store 112 can include, for example: overall processdefinitions; specific sub-steps, or ‘nodes’ within a defined process;process instance input parameters; process instance output parameters;process instance activation and completion time(s); process instancepriority; and input and output parameters, activation and completiontime(s) and priorities for each node within a process instance.

[0020] The system 110 further includes a store of predictions andstatistical data 114. The prediction and statistical data within thestore 114 includes statistical aggregation data, such as, for example:average execution time for each type of process instance and node; totalexecution times for each type of process instance and node; averagenumber of times a certain node is invoked within a certain processinstance; etc. The prediction data within the store 114 includes, forexample: data predicting the next node to be executed; data predictingthe time required to execute the node; data predicting the time and datea given process instance will be complete; etc.

[0021] In the illustrated embodiment, a dynamic prioritization system116 is integrated within a worklist manager 122. The worklist manager122 stores a listing of tasks or process instances which are pending.The dynamic prioritization system 116 is in data communication with thedata store 112 and the data store 114 by way of data links 130 and 132,respectively. The dynamic prioritization system 116 functions to keepthe list of process instances in worklist manager 122 in priority orderto ensure the proper sequence of execution by their correspondingresources (described hereafter).

[0022] The process engine 124 is further configured to read data from,write data to, and exercise control of worklist manager 122 and datastore 112. In one embodiment, a processor is included which executes thefunctions of, dynamic prioritization system 116, worklist manager 122,and process engine 124. Other embodiments are possible. Furthermore,system 110 includes user interfaces 118 and automated resources 120,which request work task information (i.e., assigned process instances)from the dynamic prioritization system 116 by way of respective datalinks 134 and 136.

[0023]FIG. 6 provides a sequence flowchart of the operations performedby dynamic prioritization system 116, generally referred to as numeral210. The sequence 210 is executed each time any node of a processinstance is scheduled for execution.

[0024] The sequence 210 begins with step 212, in which the dynamicprioritization system 116 determines which process instances within theworklist manager 122 are active (i.e., in progress), and are thereforein need of analysis. Corresponding data is then gathered from store 112by dynamic prioritization system 116.

[0025] In step 214, the dynamic prioritization system 116 gatherscorresponding prediction and statistical data from store 114.

[0026] In step 216, the dynamic prioritization system 116 computes thecost of executing the process instance that is under analysis. The costof executing a given process instance is determined by way of a ‘costfunction’ f1, which is a multi-variable function defined as follows:

[0027] f1) C=Fpd(t, Vn)

[0028] where: C denotes the computed cost; pd denotes the specificprocess definition; t denotes the time; and Vn denotes the processinstance execution trace.

[0029] The specific values for the parameters in cost function Fpd aretaken from the predictions and statistical database store 114.Particular attributes and characteristics of cost function Fpd( ) shallbe subsequently described. Continuing the description of step 216, thedynamic prioritization system 116 computes the predicted value of C foreach possible (i.e., defined) prioritization option of the processinstance. Steps 212, 214 and 216 are performed in an iterative fashionuntil all active process instances have been cost analyzed.

[0030] In step 218, the dynamic prioritization system 116 selects thatcombination of prioritization options that provides the minimum cost ofperforming the active process instances.

[0031] In step 220, in which the dynamic prioritization system 116alters the order of the analyzed process instances (i.e., those inprogress or still awaiting execution) presently queued within worklistmanager 122 corresponding to the priorities selected in step 218. Inthis way, user interfaces 118 and automated resources 120 receive themost recently prioritized tasks (i.e., nodes) within a given processinstance in response an assignment request to worklist manager 122 byway of respective links 134 and 136. This manner of requesting processinstance node assignments on an “at-will” basis is known as a ‘pull’model.

[0032] Referring to FIG. 2, a system 150 according to another embodimentof the invention is shown in block diagrammatic form. The system 150 issubstantially the same as system 110, with like reference numbersindicating like components, except that the dynamic prioritizationsystem 316 is remote from worklist manager 322, having datacommunication therebetween by way of link 154. In addition, the processexecution data store 112 is in data communication with the worklistmanager 168. In one embodiment, a processor executes the functions ofthe process engine 124, the dynamic prioritization system 316, and thework list manager 322. Other embodiments are possible.

[0033] The system 150 is governed substantially by sequence 210 aspreviously described, with the principal difference occurring at step220. Rather than altering the order of the process instances queuedwithin worklist manager, the dynamic prioritization system 316 simplypasses the highest priority nodes within pending process instances touser interfaces 118 and automated resources 120 in response tocorresponding assignment requests. In this way, the dynamicprioritization system 166 acts as the ‘front end’ of system 150 as seenby user interfaces 118 and automated resources 120. This prevents theneed to reorder the process instance queue within worklist manager 322.The system 150 is another embodiment of a pull model.

[0034] Turning now to FIG. 3, a system 160 according to still anotherembodiment of the invention is provided in block diagrammatic form. Thesystem 160 is substantially the same as the system 150, with thedistinction that the dynamic prioritization system 416 is remote fromthe worklist manager 422, having no direct data communication linktherebetween. The system 160 is governed substantially by the sequence210 as previously described, with the difference being that sequence 210is executed periodically, rather than in response to node executionscheduling.

[0035] Process instances queued in the worklist 422 are reordered instep 220 by the dynamic prioritization system 416 in correspondence tothe priorities selected in step 218 after each execution of sequence210. Furthermore, user interfaces 118 and automated resources 120request assignments directly from worklist 422 by way of respectivelinks 162 and 164. The system 160 is another embodiment of a pull model.In one embodiment, a processor executes the functions of the processengine 124, the dynamic prioritization system 416, and the work listmanager 422. Other embodiments are possible.

[0036]FIG. 4 provides a block diagram of a system 170 according toanother embodiment of the invention. The system 170 includes previouslydescribed elements 112, 114, 118, 120 and 124. Further included in thesystem 170 are messaging system 172 and work queues 174, as well asdynamic prioritization system 516. The pending process instances arequeued within work queues 174, rather than within a worklist manager(not used in system 170), as before. In one embodiment, a processorexecutes the functions of the process engine 124, the messaging system172, and the dynamic prioritization system 516. Other embodiments arepossible.

[0037] Concurrent reference is now made to FIGS. 4 and 7. FIG. 7provides a sequence flowchart of the operations performed by dynamicprioritization system 516, generally referred to as numeral 250.

[0038] The sequence 250 is executed each time a node in a processinstance is scheduled for execution, and begins with sequential steps212 and 214, as previously described.

[0039] In step 252, the dynamic prioritization system 166 calculates thecost of executing each just-scheduled node using the cost functioncorresponding to each, with the dynamic prioritization system 516reading the required parameters from the process execution data store112.

[0040] In step 254, the dynamic prioritization system 516 selects theprioritization options for each node just scheduled that results in theminimum overall cost of execution.

[0041] In step 256, the process instances of work queues 174 arereordered in correspondence with the prioritization options selected instep 254.

[0042] In further consideration of the system 170, the dynamicprioritization system 516 communicates newly prioritized (i.e.,scheduled) nodes to messaging system 172, by way of communications link182. The messaging system 172 is configured to route nodes to theirassigned destinations—users 118 or automated resources 120—by way ofrespective data links 178 and 180. This routing is automatic in responseto receiving nodes from the dynamic prioritization system 516, and isnot responsive to a request from user interfaces 118 or automatedresources 120. This scheme is therefore known as a ‘push’ model, asassigned nodes are pushed to their respective assignees rather thanbeing passed upon request.

[0043]FIG. 5 is a block diagram of a business system according toanother embodiment of the invention, generally referred to as numeral190. The system 190 includes previously described elements 112, 114,118, 120, 124, and 172. Further included is a dynamic processing system616. The system 190 does not include a worklist manager, as the dynamicprioritization system 616 pushes assigned nodes to corresponding userinterfaces 118 and automated resources 120 upon scheduling; thus, noworklist manager is required as user interfaces 118 and automatedresources 120 do not request assignments. In one embodiment, a processorexecutes the functions of the process engine 124, the messaging system172, and the dynamic prioritization system 616. Other embodiments arepossible.

[0044] Concurrent reference is now made to FIGS. 5 and 8. FIG. 8 is aflowchart of the operations performed by the dynamic prioritizationsystem 616, with the sequence generally referred to as numeral 270.

[0045] The sequence 270 begins with the sequential execution of steps212 and 214, which perform as previously described.

[0046] In step 272, the dynamic prioritization system 616 computes thecost of executing each process instance, for each respectiveprioritization option. As before, the parameters required for the costcomputation are taken from the data store 114, by way of datacommunications link 132. In computing the costs, the dynamicprioritization system 616 assumes that all process instances areassigned their default priorities.

[0047] In step 274, the dynamic prioritization system 616 selects thedefault priorities for all work nodes that provide the minimum cost ofexecution for each active process instance.

[0048] In step 276, the dynamic prioritization system 616 alters thedefault priorities of the of each work item (i.e., node) to reflect theminimum-cost selections of step 274. The dynamic prioritization system616 then stores the selected nodes in data store 112, where they areread by the process engine 124 by way of data link 138. The processengine 124 then sends the selected node to messaging system 172 by wayof path 192, which in turns pushes (i.e., transmits) them tocorresponding user interfaces 118 and automated resources 120 by way ofrespective links 178 and 180. System 190 is selectively executed eachtime a node is completed, each time a node is scheduled, orperiodically, as desired by a system administrator.

[0049] In addition to the systems and sequences just described, variousembodiments provide for a number of work prioritization schemes, whichcontribute to identifying the appropriate priority order to optimizeoverall process instance performance. These include, for example:

[0050] a1) Prediction of work item execution time, which refers to theprediction of execution time for a work item by the resource to which itis assigned, also depending on the process instance, the time in whichthe work item is executed, and other parameters.

[0051] a2) Prediction of process execution time, which is the predictionof the remainder of the process instance, selectively based on a givenpriority assignment.

[0052] a3) Prediction of the process load, which is the prediction ofhow many process instances will be activated

[0053] a4) Prediction of process instance execution path, which predictsthe flow subgraphs required by a process instance, and specificallypredictions of which nodes will be activated, and when, and how manytimes.

[0054] a5) Prediction of resource load, which is the prediction of howmany work items will be assigned to a given resource at a future time.

[0055] Through the use of schemes a1, a2, a3, a4 and a5, the predictionsprocess is dynamic and ongoing, taking into account both past processexecution predictions as well as actual process instance performance, sothat the business system of the present invention is adaptive in nature.Once the above variables have been predicted, then the DPS can computethe cost function using these predicted values. The cost function isused when evaluating the different prioritization schemes.

[0056] The protection sought is not to be limited to the disclosedembodiments, which are given by way of example only, but instead is tobe limited only by the scope of the appended claims.

What is claimed is:
 1. A system for estimating a cost of a process, thesystem comprising: a first store of process instance data; a secondstore of data including predictions and statistics respectivelycorresponding to the process instance data; and a dynamic prioritizationsystem configured to selectively access data in the first store and thesecond store and to estimate a cost of a process instance responsive tothe accessing.
 2. A system in accordance with claim 1, wherein thedynamic prioritization system is further configured to selectively varya priority of the process instance responsive to the estimate.
 3. Asystem in accordance with claim 1, and further comprising a worklistmanager having a queue configured to store a plurality of processinstances having respective priorities.
 4. A system in accordance withclaim 3, wherein the dynamic prioritization system is further configuredto estimate a cost of each of the plurality of process instancesresponsive to the accessing.
 5. A system in accordance with claim 4,wherein the dynamic prioritization system is further configured toselectively vary the priority of each of the plurality of processinstances responsive to the estimating.
 6. A system in accordance withclaim 5, wherein the worklist manager is further configured toselectively pass at least a portion of a particular process instancefrom the queue to a resource responsive to a request.
 7. A system inaccordance with claim 5, wherein the dynamic prioritization system andthe worklist manager are configured in data communication, and whereinthe dynamic prioritization system is further configured to selectivelypass at least a portion of the process instance having the highestpriority from the queue to a resource responsive to a request.
 8. Asystem in accordance with claim 1, wherein the process instance dataincludes data representing amount of time required to complete a step ofthe process.
 9. A system in accordance with claim 1, wherein the processinstance data includes data representing cost incurred in completing astep of the process.
 10. A system in accordance with claim 1, whereinthe process instance data includes data representing total cost of theprocess.
 11. A system in accordance with claim 1, wherein the processinstance data includes data representing total time required to completethe process.
 12. A method of estimating a cost of a process, the methodcomprising: providing a first store of process instance data; providinga second store of data including predictions and statistics respectivelycorresponding to the process instance data; selectively accessing datain the first store and the second store; and estimating a cost of aprocess instance responsive to the accessing using a dynamicprioritization system.
 13. A method in accordance with claim 12, andfurther comprising selectively varying a priority of the processinstance responsive to the estimating using the dynamic prioritizationsystem.
 14. A method in accordance with claim 12, and further comprisingstoring a queue having a plurality of steps of process instancesincluding respective priorities using a worklist manager.
 15. A methodin accordance with claim 14, and further comprising estimating a cost ofeach of the plurality of process instances responsive to the accessingusing the dynamic prioritization system.
 16. A method in accordance withclaim 15, and further comprising selectively varying the priority ofeach of the plurality of steps in the process instances responsive tothe estimating using the dynamic prioritization system.
 17. A method inaccordance with claim 16, and further comprising selectively passing atleast a portion of a particular process instance to a resourceresponsive to a request using the worklist manager.
 18. A method inaccordance with claim 16, and further comprising selectively passing atleast a portion of the process instance having the highest priority to aresource responsive to a request using the dynamic prioritizationsystem.
 19. A method in accordance with claim 12, wherein the providingthe process instance data includes providing data representing an amountof time required to complete a step of the process.
 20. A method inaccordance with claim 12, wherein the providing the process instancedata includes providing data representing a cost incurred in completinga step of the process.
 21. A method in accordance with claim 12, whereinthe providing the process instance data includes providing datarepresenting a total cost of the process.
 22. A method in accordancewith claim 12, wherein the providing the process instance data includesproviding data representing a total time required to complete theprocess.
 23. A system, comprising: means for selectively accessing datarelated to a process; means for accessing predictions and statisticsdata related to the process; means for computing a cost of a step withinthe process responsive to the accessing; and means for selectivelyprioritizing the step responsive to the computing.
 24. A system inaccordance with claim 23, and further comprising means for storing aplurality of processes respectively having at least one step, whereinthe means for computing includes means for selectively computing a costfor the at least one step of each of the plurality of processes.
 25. Asystem in accordance with claim 24, wherein the means for selectivelyprioritizing includes means for selectively prioritizing the at leastone step of each of the plurality of processes responsive to thecomputing.
 26. A system in accordance with claim 25, and furthercomprising means for selectively providing at least one step to aresource responsive to a request in accordance with the prioritization.27. A system in accordance with claim 25, and further comprising meansfor selectively pushing at least one step to a resource responsive to aschedule in accordance with the prioritization.